
$(function() {
    $("#fecha_ins").datepicker({
        showOn: "button",
        buttonImage: "../../images/calendar.gif",
        buttonImageOnly: true,
        showAnim: 'slideDown',
        dateFormat: "dd/mm/yy",
        //yearRange: '2012:2020',
        changeMonth: true
                //changeYear: true
    });
    $("#annio").load("Combos?accion=CBO_ANNO", function() {
        jsannio();
        jsEstado();
    });
});
function jsEstado() {
    $("#estado").load("Combos?accion=CBO_ESTADO", function() {

    });
}

function jsannio() {
    $("#uejecutora").load("Combos?accion=CBO_EJE&anno=" + $("#annio").val(), function() {
        jsuejecutora();
    });
}

function jsuejecutora() {
    $("#corte").load("Combos?accion=CBO_COR&anno=" + $("#annio").val() + "&ueje="
            + $("#uejecutora").val(), function() {
        jsQry();
    });
}

function esHora(x) {
    var y = parseInt(x);

    if (isNaN(y))
        return false;
    if (y < 0 || y > 23)
        return false;

    return x == y && x.toString() == y.toString();
}


function esMinuto(x) {
    var y = parseInt(x);
    if (isNaN(y))
        return false;
    if (y < 0 || y > 59)
        return false;

    return x == y && x.toString() == y.toString();
}

function jsQry() {

    $.ajax({
        url: "Turno",
        type: "post",
        data: {
            accion: "QRY",
            anno: $("#annio").val(),
            uejecutora: $("#uejecutora").val(),
            corte: $("#corte").val(),
            estado: $("#estado").val()



        },
        success: function(data) {
            if (data.substring(0, 3) === 'Ok!') {
                data = data.substring(3, data.length);
                $("#qbody").html(data);
            } else {

                $("#qbody").html("<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>");
                $("#msg").html(data);
                $("#dmsg").dialog({
                    modal: true,
                    width: 400,
                    buttons: {
                        "Cerrar": function() {
                            $(this).dialog("close");
                        }
                    }
                });
            }
        }
    });
}

function jsCheckHoraRefri() {


    if ($("#checkHoraRefri").is(':checked')) {

        $('#refri_ingh').attr("disabled", false);
        $('#refri_ingm').attr("disabled", false);
        $('#refri_salh').attr("disabled", false);
        $('#refri_salm').attr("disabled", false);
    } else
    {

        $('#refri_ingm').attr("disabled", true);
        $("#refri_ingm").val(" ");
        $('#refri_salh').attr("disabled", true);
        $("#refri_salh").val(" ");
        $('#refri_salm').attr("disabled", true);
        $("#refri_salm").val(" ");
        $('#refri_ingh').attr("disabled", true);
        $("#refri_ingh").val(" ");

        $("#refri_salm").val(" ");
    }



}



function jsIns() {
    $("#anno_ins").val($("#annio option:selected").text());
    $("#uejecutora_ins").val($("#uejecutora option:selected").text());
    $("#corte_ins").val($("#corte option:selected").text());
    $("#error_ins").html("");
    $("#fecha_ins").val("");
    $("#turno_des").val("");
    $("#turno_ingh").val("");
    $("#turno_ingm").val("");
    $("#turno_salh").val("");
    $("#turno_salm").val("");
    $("#refri_ingh").val("");
    $("#refri_ingm").val("");
    $("#refri_salh").val("");
    $("#refri_salm").val("");



    $("#dins").dialog({
        modal: true,
        width: 500,
        buttons: {
            "Guardar": function() {

                if (($("#turno_dif").val() === "error") || ($("#refri_dif").val() === "error")) {
                    alert("Error al definir tiempo de turno o refrigerio");
                } else {
                    var descripcionturno = $("#turno_des").val();
                    var fecha = $("#fecha_ins").val();
                    var horaingresoh = $("#turno_ingh").val();
                    var horaingresom = $("#turno_ingm").val();
                    var horasalidah = $("#turno_salh").val();
                    var horasalidam = $("#turno_salm").val();
                    var horainiciorefh = $("#refri_ingh").val();
                    var horainiciorefm = $("#refri_ingm").val();
                    var horafinrefh = $("#refri_salh").val();
                    var horafinrefm = $("#refri_salm").val();
                    var varCheck = document.getElementById("checkHoraRefri").checked;


                    if (jsValHora()) {

                        $.ajax({
                            url: "Turno",
                            type: "post",
                            data: {
                                accion: "INS",
                                anno: $("#annio").val(),
                                uejecutora: $("#uejecutora").val(),
                                corte: $("#corte").val(),
                                descripcionturno: descripcionturno,
                                fecha: fecha,
                                horaingresoh: horaingresoh,
                                horaingresom: horaingresom,
                                horasalidah: horasalidah,
                                horasalidam: horasalidam,
                                horainiciorefh: horainiciorefh,
                                horainiciorefm: horainiciorefm,
                                horafinrefh: horafinrefh,
                                horafinrefm: horafinrefm,
                                indicaCheckHora: varCheck


                            },
                            success: function(error) {
                                if (error.length !== 0) {
                                    $("#error_ins").html(error);
                                } else {
                                    window.location = "horarios_tur.jsp";
                                }
                            }
                        });
                    }
                }
            },
            "Cancelar": function() {
                $(this).dialog("close");
            }
        }
    });
}

function jsCon() {
    var id = $("input[name='_upd']:checked").val();

    if (isNaN(id)) {
        alert("Seleccione Fila para Consulta");
    } else {

        $("#anno_con").val($("#annio option:selected").text());
        $("#uejecutora_con").val($("#uejecutora option:selected").text());
        $("#corte_con").val($("#corte option:selected").text());

        var idCadena = $("#_cadena" + id).val();
        var f = idCadena.split("_");
        var anno = f[0];
        var uejecutora = f[1];
        var corte = f[2];
        var turno = f[3];


        $.ajax({
            url: "Turno",
            type: "post",
            data: {
                accion: "GET_CON",
                id: id,
                anno: anno,
                uejecutora: uejecutora,
                corte: corte,
                turno: turno

            },
            success: function(bean) {
                if (bean.length !== 0) {
                    $(bean).find('nodo').each(function() {
                        $("#" + $(this).attr('id')).val($(this).text());
                    });
                    $("#dcon").dialog({
                        modal: true,
                        width: 500,
                        buttons: {
                            "Cerrar": function() {
                                $(this).dialog("close");
                            }
                        }

                    });
                    jsGetDuracionCon();
                } else {
                    window.location = "horarios_tur.jsp";
                }
            }
        });


    }
}

function jsEst() {
    var id = $("input[name='_upd']:checked").val();
    if (isNaN(id)) {
        alert("Seleccione Fila para Actualizar Datos");
    } else {

        $("#anno_est").val($("#annio option:selected").text());
        $("#uejecutora_est").val($("#uejecutora option:selected").text());
        $("#corte_est").val($("#corte option:selected").text());

        var idCadena = $("#_cadena" + id).val();
        var f = idCadena.split("_");
        var anno = f[0];
        var uejecutora = f[1];
        var corte = f[2];
        var turno = f[3];
        


        $.ajax({
            url: "Turno",
            type: "post",
            data: {
                accion: "GET_EST",
                id: id,
                anno: anno,
                uejecutora: uejecutora,
                corte: corte,
                turno: turno
            },
            
            
            success: function(bean) {
                if (bean.length !== 0) {
                    $(bean).find('nodo').each(function() {
                        $("#" + $(this).attr('id')).val($(this).text());
                    });
                    $("#dest").dialog({
                        modal: true,
                        width: 500,
                        buttons: {
                            "Guardar": function() {
                                $.ajax({
                                    url: "Turno",
                                    type: "POST",
                                    data: {
                                        accion: "EST",
                                        id: id,
                                        anno: anno,
                                        uejecutora: uejecutora,
                                        corte: corte,
                                        turno: $("#idturno_est").val(),
                                        idestado: $("#idestado_est").val()
                                    },
                                    success: function(error) {
                                        if (error.length !== 0) {
                                            $("#error_upd").html(error);
                                        } else {
                                            window.location = "horarios_tur.jsp";
                                        }
                                    }
                                });
                            },
                            "Cancelar": function() {
                                $(this).dialog("close");
                            }
                        }
                    });
                } else {
                    window.location = "horarios_tur.jsp";
                }
            }
        });
    }
}

function jsExcel() {
    var data = "";

    $("#qbody").find('td', 'th').each(function() {
        data += $(this).text() + ";";
    });

    $("#anio_excel").val($("#annio option:selected").text());
    $("#ueje_excel").val($("#uejecutora option:selected").text());
    $("#cort_excel").val($("#corte option:selected").text());
    $("#estado_excel").val($("#estado option:selected").text());

    if (data !== "") {
        $("#data_excel").val(data);
        document.forms["to_excel"].submit();
    }
}


function jsValHora() {
    var descripcionturno = $("#turno_des").val();
    var fecha = $("#fecha_ins").val();
    var horaingresoh = $("#turno_ingh").val();
    var horaingresom = $("#turno_ingm").val();
    var horasalidah = $("#turno_salh").val();
    var horasalidam = $("#turno_salm").val();
    var horainiciorefh = $("#refri_ingh").val();
    var horainiciorefm = $("#refri_ingm").val();
    var horafinrefh = $("#refri_salh").val();
    var horafinrefm = $("#refri_salm").val();
    var error = "";
    var varCheck = document.getElementById("checkHoraRefri").checked;



    if (descripcionturno.length === 0) {

        error += "<li>Ingrese Descripción</li>";
    }
    if (fecha.length === 0) {

        error += "<li>Ingrese Fecha de Inicio de Vigencia</li>";
    }
    if (!(esHora(horaingresoh) && esMinuto(horaingresom))) {
        error += "<li>Formato de Hora Ingreso de Turno Incorrecta</li>";
    }

    if (!(esHora(horasalidah) && esMinuto(horasalidam))) {
        error += "<li>Formato de Hora Salida de Turno Incorrecta</li>";
    }

    if (varCheck) {

        if (!(esHora(horainiciorefh) && esMinuto(horainiciorefm))) {
            error += "<li>Formato de Hora Inicio de Refrigerio Incorrecta</li>";
        }

        if (!(esHora(horafinrefh) && esMinuto(horafinrefm))) {
            error += "<li>Formato de Hora Inicio de Refrigerio Incorrecta</li>";
        }

        if (!(esHora2Mayor(horainiciorefh, horainiciorefm, horafinrefh, horafinrefm))) {
            error += "<li>La Hora de inicio de refrigerio es mayor a la hora de fin</li>";
        }

        if (!(esHora2Mayor(horainiciorefh, horainiciorefm, horasalidah, horasalidam))) {
            error += "<li>La Hora de inicio de refrigerio es mayor a la hora de fin</li>";
        }
    }

    if (!(esHora2Mayor(horaingresoh, horaingresom, horasalidah, horasalidam))) {
        error += "<li>La Hora de ingreso de turno es mayor a la hora de salida</li>";
    }



    if (error.length !== 0) {
        $("#error_ins").html(error);
        return false;
    }
    else
    {
        return true;
    }


}

function esHora2Mayor(sHora1, sMinuto1, sHora2, sMinuto2) {

    // Obtener horas y minutos (hora 1) 
    var hh1 = parseInt(sHora1, 10);
    var mm1 = parseInt(sMinuto1, 10);

    // Obtener horas y minutos (hora 2) 
    var hh2 = parseInt(sHora2, 10);
    var mm2 = parseInt(sMinuto2, 10);

    // Comparar 
    if (hh1 < hh2 || (hh1 == hh2 && mm1 < mm2)) {
        return true;
    } else if (hh1 > hh2 || (hh1 == hh2 && mm1 > mm2)) {
        return false;
    } else {
        return false;
    }
}

function tiempoTranscurrido(sHora1, sMinuto1, sHora2, sMinuto2) {

    // Obtener horas y minutos (hora 1) 
    var hh1 = parseInt(sHora1, 10);
    var mm1 = parseInt(sMinuto1, 10);

    // Obtener horas y minutos (hora 2) 
    var hh2 = parseInt(sHora2, 10);
    var mm2 = parseInt(sMinuto2, 10);

    // Comparar 

    var mmtt1 = (hh1 * 60) + mm1;
    var mmtt2 = (hh2 * 60) + mm2;
    var mmdif = mmtt2 - mmtt1;
    var mmResto = mmdif % 60;
    var hhdif = (mmdif - mmResto) / 60;

    hhdif = hhdif.toString();
    while (hhdif.length < 2)
        hhdif = "0" + hhdif;
    mmResto = mmResto.toString();
    while (mmResto.length < 2)
        mmResto = "0" + mmResto;

    var respuesta = hhdif + ":" + mmResto;

    return respuesta;
}


function jsGetDuracion() {

    //alert("duracion");

    var horaingresoh = $("#turno_ingh").val();
    var horaingresom = $("#turno_ingm").val();
    var horasalidah = $("#turno_salh").val();
    var horasalidam = $("#turno_salm").val();

    var horainiciorefh = $("#refri_ingh").val();
    var horainiciorefm = $("#refri_ingm").val();
    var horafinrefh = $("#refri_salh").val();
    var horafinrefm = $("#refri_salm").val();


    var varCheck = document.getElementById("checkHoraRefri").checked;

    if (esHora(horaingresoh) && esMinuto(horaingresom) && esMinuto(horasalidah) && esMinuto(horasalidam)) {
        
  
        var duraTurno = tiempoTranscurrido(horaingresoh, horaingresom, horasalidah, horasalidam);
        $("#turno_dif").val(duraTurno);
    }

    if (varCheck) {
        if (esHora(horainiciorefh) && esMinuto(horainiciorefm) && esMinuto(horafinrefh) && esMinuto(horafinrefm)) {
            var duraRefri = tiempoTranscurrido(horainiciorefh, horainiciorefm, horafinrefh, horafinrefm);
            $("#refri_dif").val(duraRefri);
        }

    }


}

function jsGetDuracionCon() {

    var horaingreso = $("#turno_ing_con").val();
    var horasalida = $("#turno_sal_con").val();
    var horainicioref = $("#refri_ing_con").val();
    var horafinref = $("#refri_sal_con").val();


    var f = horaingreso.split(":");
    var horaingresoh = parseInt(f[0]);
    var horaingresom = parseInt(f[1]);


    var g = horasalida.split(":");
    var horasalidah = parseInt(g[0]);
    var horasalidam = parseInt(g[1]);

    var h = horainicioref.split(":");
    var horainiciorefh = parseInt(h[0]);
    var horainiciorefm = parseInt(h[1]);

    var i = horafinref.split(":");
    var horafinrefh = parseInt(i[0]);
    var horafinrefm = parseInt(i[1]);


    if (esHora(horaingresoh) && esMinuto(horaingresom) && esMinuto(horasalidah) && esMinuto(horasalidam)) {
        var duraTurno = tiempoTranscurrido(horaingresoh, horaingresom, horasalidah, horasalidam);
        $("#turno_dif_con").val(duraTurno);
    }


    if (esHora(horainiciorefh) && esMinuto(horainiciorefm) && esMinuto(horafinrefh) && esMinuto(horafinrefm)) {
        var duraRefri = tiempoTranscurrido(horainiciorefh, horainiciorefm, horafinrefh, horafinrefm);
        $("#refri_dif_con").val(duraRefri);


    }


}
